import java.util.*;

public class Solution474 {
//    ArrayList<String> list = new ArrayList<>();
//
//    public int numberOfBoomerangs(int[][] points) {
//        int count = 0;
//        String[] array = new String[points.length];
//        for (int i = 0; i < points.length; i++) {
//            array[i] = String.valueOf(i);
//        }
//
//
//        List lst = Arrays.asList(array);
//
//        take("", 3, lst);
//        for (int i = 0; i < list.size(); i++) {
//            int a = list.get(i).charAt(0) - '0';
//            int b = list.get(i).charAt(1) - '0';
//            int c = list.get(i).charAt(2) - '0';
//            if (dis(points[a][0], points[a][1], points[b][0], points[b][1])
//                    == dis(points[a][0], points[a][1], points[c][0], points[c][1]))
//                count++;
//        }
//        //System.out.println(list);
//        return count;
//    }


    public int numberOfBoomerangs(int[][] points) {
        int count=0;
        for (int i = 0; i < points.length; i++) {
            HashMap<Integer, Integer> map = new HashMap<>();
            for (int j = 0; j < points.length; j++) {
                int dis = dis(points[j][0], points[j][1], points[i][0], points[i][1]);
                map.put(dis, map.getOrDefault(dis, 0) + 1);
            }
            for(Map.Entry<Integer, Integer> entry : map.entrySet()){
                int m=entry.getValue();
                count+=m*(m-1);
            }
        }
        return count;
    }

    public int dis(int x1, int y1, int x2, int y2) {
        int a = (x1 - x2) * (x1 - x2);
        int b = (y1 - y2) * (y1 - y2);
        return a + b;
    }

    public static void main(String[] args) {
        Solution474 solution474 = new Solution474();
        System.out.println(solution474.numberOfBoomerangs(new int[][]
                {new int[]{0, 0}, new int[]{1, 0}, new int[]{2, 0}}));


    }

//    public void take(String s, int total, List lst) {
//
//        for (int i = 0; i < lst.size(); i++) {
//            List templst = new LinkedList(lst);
//            String n = (String) templst.remove(i);// 取出来的数字
//            String str = s + n;
//            if (total == 1) {
//                list.add(str);
//            } else {
//                int temp = total - 1;//在同一层中total总量不能减,不能再原有变量的基础上
//                take(str, temp, templst);// 这里的temp以及templst都是全新的变量和集合
//            }
//        }
//    }
}
